package org.suwenqian.airoleplayingchatbackend.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 消息实体类，对应数据库中的消息表。
 * 包含消息的基本信息，如消息ID、会话ID、消息内容等。
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@TableName("message")
public class MessageDO {
    /**
     * 消息ID，主键，自增。
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 会话ID，外键关联conversation表，不能为空。
     */
    private Long conversationId;

    /**
     * 消息文本内容，不能为空。
     */
    private String content;

    /**
     * 消息发送者，1表示用户，0表示AI角色，不能为空。
     */
    private Integer isUserMessage;

    /**
     * 语音消息的存储URL，可选。
     */
    private String audioUrl;

    /**
     * 消息发送时间，默认值为当前时间戳。
     */
    private LocalDateTime createdAt;

}
